#pragma once

#include "QSEvents.h"
#include "QSKey.h"
#include "QSButton.h"

namespace QS
{	

	struct KeyEventArgs : public EventArgs
	{
		KeyEventArgs(bool arg_down,
					 int arg_character = 0, 
					 Key::Enum arg_key = Key::None) 
		: down(arg_down), key(arg_key), character(arg_character){}
		
		int character;
		bool down;
		Key::Enum key;
	};

	struct MouseEventArgs : public EventArgs
	{
		MouseEventArgs(bool arg_down = false, 
					   float arg_dx = 0,
					   float arg_dy = 0,
					   Button::Enum arg_button = Button::None)
		: down(arg_down), button(arg_button), dx(arg_dx), dy(arg_dy){}
		
		float dx, dy;
		bool down;
		Button::Enum button;
	};
}